Docker 是一種軟體平台,可以快速地建立、測試和部署應用程式。Docker 將軟體封裝到名為容器的標準化單位,其中包含程式庫、系統工具、程式碼和執行時間等執行軟體所需的所有項目。
這是一種應用層級的虛擬化技術,主要依賴於兩個 Linux 的核心功能來實現容器內部的資源隔離:
這是一種機制,用來隔離應用程式對系統資源的視圖。不同的命名空間能夠隔離如進程 ID、網絡資源、文件系統等。常見的命名空間包括:
這是一個 Linux 功能,用於限制、監控和隔離容器的資源使用,例如 CPU、記憶體、I/O 等。它確保一個容器的高資源使用不會影響其他容器或宿主機的穩定性。
雖然 Docker 使用了這些技術來進行隔離,但仍有可能出現「容器逃逸」漏洞,攻擊者可能利用這些漏洞突破隔離限制,對宿主機發動攻擊。例如,歷史上曾出現過使用未修補的漏洞從容器中逃逸至宿主機的事件。因此,保持系統和 Docker 的最新更新是至關重要的。
Docker 映像檔是容器運行的基礎,它包含了操作系統、應用程序以及所需的依賴。映像檔的安全性至關重要,主要有以下幾個風險:
解決方式
https://aws.amazon.com/tw/docker/
https://philipzheng.gitbook.io/docker_practice/introduction/what
https://github.com/twtrubiks/docker-tutorial